#include <iostream>
#include <unistd.h>
#include "Common.hpp"

int main()
{
    SetNonBlock(0);
    char buffer[1024];
    while(true)
    {
        int bytes = ::read(0, buffer, sizeof(buffer) - 1);
        if(bytes > 0)
        {
            std::cout << "Echo# " << buffer << std::endl;
        }
        else
        {
            if(errno == EWOULDBLOCK || errno == EAGAIN) // 这里不使用返回值做判断
            {
                std::cout << "底层数据没有就绪, 请下一次再读取(这里可以做其他事情)~" << std::endl;
                sleep(1);
                continue;
            }
            else
            {
                std::cout << "读取错误, errno=" << errno << std::endl;
                sleep(1);
            }
        }
    }
    return  0;
}